Typically a business will have an accounting software system that maintains a database of the business transactions with its customer, vendors, banks, and other third parties associated with the business as well as internal business transactions between internal accounts. The typical architecture of such accounting systems provides for data to be input into the system through predefined transactions. The system then updates applicable records in the data base.
For example, when an invoice is received from a vendor, an accounts payable employee will typically open a manual data entry (MDE) screen or panel which prompts the employee to enter each element of data from the invoice and then submit the entered data to the application as a single transaction. At that time the system will write the newly entered invoice into the database. To assure that all necessary transaction data is complete, the application will not accept the transaction and update the applicable records in the database until all required fields have been entered and the data is validated.
While these accounting systems facilitate record keeping and may reduce data entry for internal transactions, transactions between businesses have traditionally been handled by one businesses software system printing a document and the other business manually entering the transaction into their system using data from the document.
To facilitate the exchange of transaction documents electronically, in 1979 the American National Standards Institute (ANSI) charted the Accredited Standards Committee (ASC) to develop and maintain a standard for Electronic Data Interchange (EDI) of business transaction documents.
The ANSI ASC X12 “standards” are essentially a uniform syntax for packaging ASCII data items that comprise a business transaction. The syntax is simple, applying a lightly-structured set of labels and positional rules, and a looping structure, on ordinary ASCII characters. The key feature of an X12 standard transaction is that it is totally independent of the mechanical means of transmittal of information. The standards are for the interchange of data: information can be coded in X12 on one platform and application program, and transmitted—using floppy diskette, magnetic tape, or by any type of real-time or batch or packet telecommunication, or a combination of these methods—to any other platform and application program having an electronic X12 interpreter. The standards control simply the coding format used, rather than the transmission method.
ANSI ASC X12 syntax rules and code values are organized at four levels of transmission control standards, transaction set standards, segment directory and positional rules, and data element dictionary.
The transmission (or interchange) control standards provide for the overall electronic envelope in which one or more X12 transaction sets are carried from sender to receiver(s). The transmission control standards define such items as: how transaction sets are identified and how beginnings and endings of the transaction sets are defined, grouping of the transaction sets, identification of sender and receiver, and procedures for transmitting and for acknowledging receipt.
Each transaction set is roughly equivalent to a generic “type” of business paper document, such as an Invoice, or a Purchase Order, or a Report of Test Results. A three-digit number, called a standard-development track number, is used to identify each type of electronic document. As an example, a purchase order has a standard-development track number of 850, the invoice is an 810, and a request for quotation is an 840.
Each type of transaction set, in turn, is made up of a series of “segments”—each roughly equivalent to a “line”, “block”, or “field” of related data on a paper form. A segment code name is used to identify a logical and predefined combination of related data elements. For example, a segment code “DTM” specifies that “date-and-time” usually has three related data elements. The first data element would contain a code number or character indicating the kind of date to follow, such as shipping date, invoice date, publication date, or other pre-specified date. The second data element would contain the date itself, using six digits, and the third data element would be the time of day. Special characters separate data elements within the segment and mark the termination of a segment and the beginning of the next segment.
Another example of a segment might be the “PER” segment that represents the name and telephone number of the “person to contact” which is coded in X12 as:PER*1C* W. M. Smith*TE*6035551234*\where “PER” is the identifier for the segment, and “1C” and “TE” are the reference codes for person name (W. M. Smith) and phone number (6035551234). “\” signifies end of segment.
The data element dictionary provides definitions for the individual elements of data which are assembled to compose each segment of information within the electronic transaction.
The data element dictionary defines the data elements that can be transmitted and provides a standard identifying code for each element. Data elements are the X12 “atoms”, the basic building blocks of the record being transmitted. Additionally, the X12 dictionary contains tables of predefined code values for commonly encountered items of business data. An example of data elements often found together are the telephone number of a point of contact; the X12 reference code is “TE,” which when encountered tells the receiver that the following data item (e.g. “603-555-1212”) should be interpreted as a telephone number rather than a fax or pager number. The value “TE” is an example of a standard, predefined X12 code value, and the phone number itself is an example of a user-supplied value. The X12 standards provide a powerful combination of predictable positions—or data “pigeonholes”—in which to place or find both kinds of elements of data.
In practice, the originator of an electronic transaction uses the X12 standards to construct a transaction which could be easily interpreted by a recipient familiar with X12, or, more importantly, the recipient's data processing equipment. The originator system utilizes the data element dictionary to identify how each element in his message should be coded, to determine how each of those elements should be sequenced in the order established in the segment dictionary, how those segments should be placed in a segment sequence within a transaction document, and how the transaction set should be grouped within a single transmission.
Despite the ultimate goal of EDI to standardize transactions between businesses, there is no true single standard governing the format of a transaction, as a practical matter. Instead, there are multiple data dictionaries defining transaction formats, with multiple versions which proliferate the business world, both domestically and globally. In addition to the X12 document sets discussed above, other formats include UN/EDIFACT (United Nations rules for Electronic Data Interchange For Administration, Commerce and Transport), CEFACT (Centre for Facilitation of Procedures and Practices for Administration, Commerce and Transport), NACHA (National Automated Clearinghouse Association), and SWIFT (Society for Worldwide Interbank Financial Telecommunications). From year to year, each of these data dictionaries is updated and a new version is issued. The update includes the addition of new “codes”, or entries, to the data dictionary, the deletion of codes, as well as modifications of existing codes. For example, as of the year 1999, at least 13 different versions of X12 were in existence (version 2000 through version 4030). In a typical X12 version, over 63 data segments, 630 fields of information, and 10,000 codes exist for financial EDI. These statistics are compounded with each and every X12 version.
Therefore, from a practical standpoint, only large companies that exert substantial leverage over their trading partners can truly realize the efficiencies of EDI by using a single standard (e.g. their standard) while all of their trading partners conform to their standards.
If a company can not leverage its trading partners to us EDI in their standard, EDI is not likely to provide any cost savings as the multiple number of standards that would need to be maintained would likely cost more than data entry. For example, if a company without adequate leverage to provide for all of its suppliers to use a single EDI standard for sending invoices to the company, the company would have to maintain multiple dictionaries on its system and still be required to maintain a manual data entry department for those suppliers that do not use any form of EDI. Such costs would defeat any cost savings of receiving a portion of the invoices electronically.
What is needed is an invoice receipt and management system that can accept invoices from a plurality of suppliers using a plurality of electronic formats, manage and normalize the invoice data, and to provide the invoices to the customer in an electronic data structure that is compatible with the customers systems for electronic data entry.